home *** CD-ROM | disk | FTP | other *** search
/ Nikkei Mac 20 / NIKKEI-MAC-CD-VOL-20-1998-12.ISO.7z / NIKKEI-MAC-CD-VOL-20-1998-12.ISO / デモソフトライブラリー / 日本テレコムODNスターターキット / Internet Setup / Modem Scripts / Microcom DeskPorte Fast⁄288 / Microcom DeskPorte Fast_288 next >
Text File  |  1997-05-20  |  9KB  |  511 lines

  1. !  Microcom DeskPorte Fast
  2. !    Author:    Kris Kreutzman
  3. !
  4. !    Copyright:    ゥ 1991-1996 Apple Computer, Inc.    All Rights Reserved.
  5. !
  6. !    revision history:
  7. !        v2.1    as shipped with the ARA 2.1
  8. !
  9. !  'mlts' resource info for this modem:
  10. !    byte 1 == 01 -> modem HAS built-in error correction protocols
  11. !    byte 2 == 01 -> modem HAS built-in data compression protocols
  12. !    byte 3 == 100 -> max number of chars in varstr 7
  13. !    byte 4 == 100 -> max number of chars in varstr 8
  14. !    byte 5 == 100 -> max number of chars in varstr 9
  15. !    
  16. @ORIGINATE
  17. @ANSWER
  18. !
  19. ! ---- Initial modem setup ----
  20. !
  21. ! Set serial port speed depending upon the compression flag
  22. !    A higher rate with compression on to handle expanded data from the modem
  23. !    A lower rate closer to the DCE when compression is off
  24. ifstr 5 1 "0"
  25. serreset 57600, 0, 8, 1
  26. jump 2
  27. !
  28. @LABEL 1
  29. serreset 38400, 0, 8, 1
  30. !
  31. @LABEL 2
  32. hsreset 0 0 0 0 0 0
  33. settries 0
  34. !
  35. ! Get the modem's attention
  36. !
  37. matchclr
  38. matchstr 1 3 "OK¥13¥10"
  39. write "AT¥13"
  40. matchread 30
  41. !
  42. @LABEL 3
  43. !
  44. ! Setup the modem for the following:
  45. ! &F   -  Reset to factory settings
  46. ! E0   -  Turn command echo off
  47. ! S0=0 -  Turn off answering
  48. !
  49. matchclr
  50. matchstr 1 4   "OK¥13¥10"
  51. matchstr 2 101 "ERROR¥13¥10"
  52. write "AT&FE0S7=80S0=0¥13"
  53. matchread 30
  54. inctries
  55. iftries 3 101
  56. !
  57. ! Reset the Modem on setup failure
  58. !
  59. DTRClear
  60. pause 5
  61. DTRSet
  62. flush
  63. jump 3
  64. !
  65. !
  66. @LABEL 4
  67. ! Varstring 4 , reliable link protocol:
  68. !    = 0, handled by computer (ARAP)
  69. !    = 1, handled by modem (PPP)
  70. !    = 2, MNP10 protocol (Cellular protocol, no longer supported)
  71. ifstr 4 5 "1"
  72. ifstr 4 5 "2"
  73. !
  74. ! Varstring 4 == 0, turn off reliable link protocol in modem (ARAP)
  75. matchclr
  76. matchstr 1 9 "OK¥13¥10"
  77. write "AT¥¥N0%C0¥13"
  78. matchread 30
  79. jump 101
  80. !
  81. !
  82. @LABEL 5
  83. ! Varstring 5, compression protocol:
  84. !    = 0, handled by computer 
  85. !    = 1, handled by modem
  86. ifstr 5 9 "1"
  87. !
  88. ! Varstring 5 == 0, turn off compression protocol in modem.
  89. matchclr
  90. matchstr 1 9 "OK¥13¥10"
  91. write "AT%C0¥13"
  92. matchread 30
  93. jump 101
  94. !
  95. !
  96. @LABEL 9
  97. ! Varstring 2, modem speaker:
  98. !    = 0, speaker off
  99. !    = 1, speaker on
  100. ifstr 2 13 "1"
  101. pause 5
  102. matchclr
  103. matchstr 1 13 "OK¥13¥10"
  104. write "ATM0¥13"
  105. matchread 30
  106. jump 101
  107. !
  108. ! Modem ready, wait for a call or originate a call
  109. !
  110. @LABEL 13
  111. ifANSWER 32
  112. !
  113. !
  114. ! ---- Originating a call ----
  115. !
  116. ! Varstring 6, dialing mode:
  117. !    = 0, normal dialing
  118. !    = 1, blind dialing
  119. !    = 2, manual dialing
  120. ifstr 6 17 "1"
  121. ifstr 6 15 "2"
  122. jump 19
  123. !
  124. @LABEL 15
  125. ! Display ASK dialog with message.  Goto label 107 if dialog canceled.
  126. ASK 2 "Pick up the phone & dial ^1.  When the phone rings, click OK then hang up." 107
  127. note "Manual dialing initiated" 3
  128. ! X1 to ignore dialtone & busy, D to dial, ¥^ generates data tone
  129. write "ATX1D¥13"
  130. jump 32
  131. !
  132. @LABEL 17
  133. note "Dialing without tone" 3
  134. matchclr
  135. matchstr 1 19 "OK¥13¥10"
  136. ! X1 to ignore dialtone & busy
  137. write "ATX1¥13"
  138. matchread 30
  139. jump 101
  140. !
  141. !
  142. @LABEL 19
  143. ! Display the full dialstring contained in Varstring 1
  144. note "Dialing ^1" 3
  145. !
  146. ! Varstrings 7, 8 and 9, contain dialstring fragments
  147. !    Long phone numbers may need to be split into smaller groups
  148. !    for the modem to use
  149. !
  150. ! Varstring 3:  "p" for pulse & "t" for tone dialing
  151. ! Varstring 8 == blank (dialstring in varstring 7)
  152. ! Varstring 9 == blank (dialstring in varstrings 7 & 8)
  153. ! Otherwise (dialstring in varstrings 7, 8 & 9)
  154. ! ¥^ is added to the dialstring to force the modem to generate a data tone
  155. ifstr 8 27 " "
  156. ifstr 9 24 " "
  157. !
  158. !  Write dialstring in varstrings 7, 8 & 9
  159. matchclr
  160. matchstr 1 21 "OK¥13¥10"
  161. write "ATD^3^7;¥13"
  162. matchread 400
  163. jump 101
  164.  
  165. @LABEL 21
  166. matchclr
  167. matchstr 1 22 "OK¥13¥10"
  168. write "ATD^3^8;¥13"
  169. matchread 400
  170. jump 101
  171.  
  172. @LABEL 22
  173. write "ATD^3^9¥13"
  174. jump 32
  175. !
  176. !
  177. @LABEL 24
  178. !  Write dialstring in varstrings 7 & 8
  179. matchclr
  180. matchstr 1 25 "OK¥13¥10"
  181. write "ATD^3^7;¥13"
  182. matchread 400
  183. jump 101
  184.  
  185. @LABEL 25
  186. write "ATD^3^8¥13"
  187. jump 32
  188. !
  189. @LABEL 27
  190. !  Write dialstring in varstring 7
  191. write "ATD^3^7¥13"
  192. !
  193. !
  194. !    ---- Connection responce ----
  195. !
  196. ! The following section will parse modem responces of two types:
  197. !   1) PROTOCOL: xxx, COMPRESSION: xxx, CONNECT xxx
  198. !   2) CONNECT xxx/ARQ/V42
  199. !
  200. @LABEL 32
  201. matchclr
  202. matchstr  1 81  "RING¥13¥10"
  203. matchstr  2 102 "NO DIALTONE¥13¥10"
  204. matchstr  3 103 "NO CARRIER"
  205. matchstr  4 103 "ERROR¥13¥10"
  206. matchstr  5 104 "BUSY¥13¥10"
  207. matchstr  6 105 "NO ANSWER¥13¥10"
  208. matchstr  7 33  "CONNECT "
  209. matchstr  8 32  "CARRIER"
  210. matchstr  9 40  "CONNECT¥13¥10"
  211. matchstr 10 62  "PROTOCOL: LAP"
  212. matchstr 11 62  "PROTOCOL: MNP"
  213. matchstr 12 62  "PROTOCOL: ALT"
  214. matchstr 13 67  "COMPRESSION: V"
  215. matchstr 14 67  "COMPRESSION: MNP5"
  216. matchstr 15 67  "COMPRESSION: CLASS"
  217. matchread 700
  218. ifANSWER 32
  219. jump 105
  220. !
  221. !  Parse the speed of connect result codes
  222. !  2400 and 4800 have two entries each
  223. !  to distinguish them from 24000 and 48000
  224. !
  225. @LABEL 33
  226. matchclr
  227. matchstr  1 40 "2400¥13"
  228. matchstr  2 40 "2400/"
  229. matchstr  3 41 "4800¥13"
  230. matchstr  4 41 "4800/"
  231. matchstr  5 42 "7200"
  232. matchstr  6 43 "9600"
  233. matchstr  7 44 "12000"
  234. matchstr  8 45 "14400"
  235. matchstr  9 46 "16800"
  236. matchstr 10 47 "19200"
  237. matchstr 11 48 "21600"
  238. matchstr 12 49 "24000"
  239. matchstr 13 50 "26400"
  240. matchstr 14 51 "28800"
  241. matchstr 15 52 "31200"
  242. matchstr 16 53 "33600"
  243. matchstr 17 54 "38400"
  244. matchstr 18 55 "48000"
  245. matchstr 19 56 "56000"
  246. matchstr 20 57 "57600"
  247. matchstr 21 58 "64000"
  248. matchread 30
  249. jump 59
  250. !
  251. ! -- Connection rates --
  252. ! CommunicatingAt informs ARA of the raw modem to modem
  253. ! connection speed.
  254. !
  255. @LABEL 40
  256. note "Communicating at 2400 bps." 2
  257. CommunicatingAt 2400
  258. jump 60
  259. !
  260. @LABEL 41
  261. note "Communicating at 4800 bps." 2
  262. CommunicatingAt 4800
  263. jump 60
  264. !
  265. @LABEL 42
  266. note "Communicating at 7200 bps." 2
  267. CommunicatingAt 7200
  268. jump 60
  269. !
  270. @LABEL 43
  271. note "Communicating at 9600 bps." 2
  272. CommunicatingAt 9600
  273. jump 60
  274. !
  275. @LABEL 44
  276. note "Communicating at 12400 bps." 2
  277. CommunicatingAt 12400
  278. jump 60
  279. !
  280. @LABEL 45
  281. note "Communicating at 14400 bps." 2
  282. CommunicatingAt 14400
  283. jump 60
  284. !
  285. @LABEL 46
  286. note "Communicating at 16800 bps." 2
  287. CommunicatingAt 16800
  288. jump 60
  289. !
  290. @LABEL 47
  291. note "Communicating at 19200 bps." 2
  292. CommunicatingAt 19200
  293. jump 60
  294. !
  295. @LABEL 48
  296. note "Communicating at 21600 bps." 2
  297. CommunicatingAt 21600
  298. jump 60
  299. !
  300. @LABEL 49
  301. note "Communicating at 24000 bps." 2
  302. CommunicatingAt 24000
  303. jump 60
  304. !
  305. @LABEL 50
  306. note "Communicating at 26400 bps." 2
  307. CommunicatingAt 26400
  308. jump 60
  309. !
  310. @LABEL 51
  311. note "Communicating at 28800 bps." 2
  312. CommunicatingAt 28800
  313. jump 60
  314. !
  315. @LABEL 52
  316. note "Communicating at 31200 bps." 2
  317. CommunicatingAt 31200
  318. jump 60
  319. !
  320. @LABEL 53
  321. note "Communicating at 33600 bps." 2
  322. CommunicatingAt 33600
  323. jump 60
  324. !
  325. @LABEL 54
  326. note "Communicating at 38400 bps." 2
  327. CommunicatingAt 38400
  328. jump 60
  329. !
  330. @LABEL 55
  331. note "Communicating at 48000 bps." 2
  332. CommunicatingAt 48000
  333. jump 60
  334. !
  335. @LABEL 56
  336. note "Communicating at 56000 bps." 2
  337. CommunicatingAt 56000
  338. jump 60
  339. !
  340. @LABEL 57
  341. note "Communicating at 57600 bps." 2
  342. CommunicatingAt 57600
  343. jump 60
  344. !
  345. @LABEL 58
  346. note "Communicating at 64000 bps." 2
  347. CommunicatingAt 64000
  348. jump 60
  349. !
  350. @LABEL 59
  351. note "Communicating at an unknown rate." 2
  352. jump 60
  353. !
  354. ! Look for reliablilty and compression results 
  355. ! at the end of the connect result.
  356. !
  357. @LABEL 60
  358. matchclr
  359. matchstr  1 63 "LAPM"
  360. matchstr  2 63 "REL"
  361. matchstr  3 63 "ARQ"
  362. matchstr  4 68 "COMP/"
  363. matchstr  5 68 "COMP¥13"
  364. matchstr  6 63 "V42/"
  365. matchstr  7 63 "V42¥13"
  366. matchstr  8 68 "V42BIS"
  367. matchstr  9 68 "V42bis"
  368. matchstr 10 63 "MNP¥13"
  369. matchstr 11 68 "MNP5"
  370. matchstr 12 70 "¥10"
  371. matchread 30
  372. jump 70
  373.  
  374. ! -- Modem error correction link negotiation --
  375. ! Userhook 2 informs ARA that a modem-to-modem error
  376. ! correcting protocol has been negotiated
  377. !
  378. !
  379. @LABEL 62
  380. note "Modem Reliable Link Established." 2
  381. userhook 2
  382. jump 32
  383. !
  384. @LABEL 63
  385. note "Modem Reliable Link Established." 2
  386. userhook 2
  387. jump 60
  388. !
  389. ! -- Compression negotiation --
  390. ! Userhook 3 informs ARA that a modem-to-modem compression
  391. ! protocol has been negotiated
  392. !
  393. @LABEL 67
  394. note "Modem Compression Established." 2
  395. userhook 3
  396. jump 32
  397. !
  398. @LABEL 68
  399. note "Modem Compression Established." 2
  400. userhook 3
  401. jump 60
  402. !
  403. !
  404. ! -- Normal exit after "CONNECT" --
  405. !
  406. !  This modem has been setup to do CTS handshaking,
  407. !  and we assume that a CTS handshaking cable is being used.
  408. !
  409. @LABEL 70
  410. ! Turn on CTS handshaking.
  411. HSReset 0 1 0 0 0 0
  412. !
  413. ifANSWER 71
  414. pause 30
  415. @LABEL 71
  416. exit 0
  417. !
  418. !
  419. ! ---- Answer calls ----
  420. !
  421. !    A RING result from the modem and in ANSWERING mode
  422. !    claims the serial port and answering the phone
  423. !
  424. @LABEL 81
  425. ifORIGINATE 32
  426. userhook 1
  427. note "Answering phone..." 2
  428. write "ATA¥13"
  429. jump 32
  430. !
  431. !
  432. ! ---- Hang up and reset modem ----
  433. !
  434. @HANGUP
  435. @LABEL 90
  436. settries 0
  437. HSReset 0 0 0 0 0 0
  438. !
  439. @LABEL 92
  440. !  Escape from data to command mode
  441. matchclr
  442. matchstr 1 96 "OK¥13¥10"
  443. write "+++"
  444. matchread 20
  445. !
  446. @LABEL 94
  447. ! Force a hangup
  448. matchclr
  449. matchstr 1 98 "NO CARRIER¥13¥10"
  450. matchstr 2 98 "OK¥13¥10"
  451. matchstr 3 98 "ERROR¥13¥10"
  452. matchstr 4 98 "0¥13¥10"
  453. write "ATH¥13"
  454. matchread 30
  455. ! Try to get control of the modem by toggling DTR
  456. DTRClear
  457. pause 5
  458. DTRSet
  459. flush
  460. !
  461. ! Try the hangup sequence three times otherwise declare and error
  462. inctries
  463. iftries 3 101
  464. jump 92
  465. !
  466. @LABEL 96
  467. ! Pause between data and command mode
  468. pause 50
  469. jump 94
  470. !
  471. !
  472. @LABEL 98
  473. ! Recall the factory settings
  474. pause 15
  475. matchclr
  476. matchstr 1 99 "OK¥13¥10"
  477. write "AT&F¥13"
  478. matchread 30
  479. jump 101
  480. !
  481. @LABEL 99
  482. exit 0
  483. !
  484. ! ---- Error messages -----
  485. !
  486. ! Modem Not Responding
  487. @LABEL 101
  488. exit -6019
  489. !
  490. ! No Dial Tone
  491. @LABEL 102
  492. exit -6020
  493. !
  494. ! No Carrier or Error
  495. @LABEL 103
  496. exit -6021
  497. !
  498. ! Busy
  499. @LABEL 104
  500. exit -6022
  501. !
  502. ! No Answer
  503. @LABEL 105
  504. exit -6023
  505. !
  506. ! User Cancellation
  507. @LABEL 107
  508. exit -6008
  509.